/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  dev
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      collapseDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

// If on, after collapsing check the quality of the mesh. If bad faces are
// generated then redo the collapsing with stricter filtering.
controlMeshQuality      off;


collapseEdgesCoeffs
{
    // Edges shorter than this absolute value will be merged
    minimumEdgeLength   0.0011;

    // The maximum angle between two edges that share a point attached to
    // no other edges
    maximumMergeAngle   30;
}


//collapseFacesCoeffs
//{
//    // The initial face length factor
//    initialFaceLengthFactor     0.5;
//
//    // If the face can't be collapsed to an edge, and it has a span less than
//    // the target face length multiplied by this coefficient, collapse it
//    // to a point.
//    maxCollapseFaceToPointSideLengthCoeff   0.3;
//
//    // Allow early collapse of edges to a point
//    allowEarlyCollapseToPoint               on;
//
//    // Fraction to premultiply maxCollapseFaceToPointSideLengthCoeff by if
//    // allowEarlyCollapseToPoint is enabled
//    allowEarlyCollapseCoeff                 0.2;
//
//    // Defining how close to the midpoint (M) of the projected
//    // vertices line a projected vertex (X) can be before making this
//    // an invalid edge collapse
//    //
//    // X---X-g----------------M----X-----------g----X--X
//    //
//    // Only allow a collapse if all projected vertices are outwith
//    // guardFraction (g) of the distance form the face centre to the
//    // furthest vertex in the considered direction
//    guardFraction                           0.1;
//}
//
//
//controlMeshQualityCoeffs
//{
//    // Name of the dictionary that has the mesh quality coefficients used
//    // by motionSmoother::checkMesh
//    #include                    "meshQualityDict";
//
//    // The amount that minimumEdgeLength will be reduced by for each
//    // edge if that edge's collapse generates a poor quality face
//    edgeReductionFactor         0.5;
//
//    // The amount that initialFaceLengthFactor will be reduced by for each
//    // face if its collapse generates a poor quality face
//    faceReductionFactor         $initialFaceLengthFactor;
//
//    // Maximum number of smoothing iterations for the reductionFactors
//    maximumSmoothingIterations  2;
//
//    // Maximum number of outer iterations is mesh quality checking is enabled
//    maximumIterations           10;
//
//    // Maximum number of iterations deletion of a point can cause a bad face
//    // to be constructed before it is forced to not be deleted
//    maxPointErrorCount          5;
//}


// ************************************************************************* //
